package composite

import (
	"errors"
	"fmt"
)

// 使用继承的方式, 鸟类的定义, 飞, 叫, 下蛋
type AbstractBird struct {
}

func (b AbstractBird) fly() error {
	fmt.Println("flying")
	return nil
}

type OstrichV1 struct {
	AbstractBird
}

func (o OstrichV1) fly() error {
	return errors.New("i can't fly")
}
